import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'

// ElementUI
import ElementUI, { Message } from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
import 'element-ui/lib/theme-chalk/display.css';
Vue.use(ElementUI);

// 导入通用CSS
import "./assets/css/common.css"

// 导入JS部分
import './assets/js/rem';
import './assets/js/array';


// 配置 axios
import axios from 'axios';
axios.defaults.withCredentials = true; //开启cors
axios.defaults.timeout = 5000// 设置超时时间
axios.defaults.baseURL = "http://192.168.31.193:5566/api/"; // 配置请求头
axios.defaults.headers.post["Content-Type"] = 'application/x-www-form-urlencoded'; // 配置post请求头
// 设置请求拦截器
axios.interceptors.request.use(config => {
  config.headers.authorization = window.localStorage.getItem("token"); // 携带用户token
  // 在最后必须return config
  return config;
})
// 设置响应拦截器
axios.interceptors.response.use(
  response => {
    if (response.data.status == 403) { // 登录过期
      // 此处已被router拦截 不需要再次跳转login页面
      // 清除token
      console.log("登录过期 清除toekn");
      window.localStorage.clear("token");
      return router.replace("/login")
    } else {
      return response;
    }
  },
  error => {
    console.log("请求失败");
    return error;
  }
)
Vue.prototype.$http = axios;

// Message提示框
Vue.prototype.$message = Message;


Vue.config.productionTip = false

new Vue({
  router,
  store,
  render: h => h(App)
}).$mount('#app')
